package com.ruicar.afs.cloud.basic.proceeds.mq.dto;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ruicar.afs.cloud.basic.common.entity.BasicFinancialAgreement;
import com.ruicar.afs.cloud.common.modules.contract.enums.AdjustTypeEnum;
import com.ruicar.afs.cloud.common.modules.contract.enums.AssetTypeEnum;
import com.ruicar.afs.cloud.common.modules.contract.enums.CalculateType;
import com.ruicar.afs.cloud.common.modules.contract.enums.DiscountType;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;

/**
 * @author: Lee
 * @date 2020-05-29 09:31:34 
 * @description 合同金融协议
 */
@Data
public class ContractFinancialAgreementDTO extends ContractMqBaseDataDTO<BasicFinancialAgreement>{

	@JsonSerialize(using= ToStringSerializer.class)
	@JSONField(serializeUsing = com.alibaba.fastjson.serializer.ToStringSerializer.class)
	private Long id;
	/** 合同号码 */
	@ApiModelProperty("合同号码")
	private String contractNo;
	/** 车辆ID */
	@ApiModelProperty("车辆ID")
	@JsonSerialize(using = ToStringSerializer.class)
	private Long carId;
	/** 产品ID */
	@ApiModelProperty("产品ID")
	@JsonSerialize(using = ToStringSerializer.class)
	private Long productId;
	/** 融资费用类型 车款，附加贷 */
	@ApiModelProperty("融资费用类型 车款，附加贷")
	private AssetTypeEnum costType;
	/** 合同金额 */
	@ApiModelProperty("合同金额")
	private BigDecimal contractAmt;
	/** 客户利率/贴息后利率 */
	@ApiModelProperty("客户利率/贴息后利率")
	private Double custRate;
	/** 结算利率 */
	@ApiModelProperty("结算利率")
	private Double settleRate;
	/** 上调/下调 枚举值：上调，下调 */
	@ApiModelProperty("上调/下调 枚举值：上调，下调")
	private AdjustTypeEnum adjustType;
	/** 调整基点 */
	@ApiModelProperty("调整基点")
	private Integer basicPoint;
	/** 首付比例 */
	@ApiModelProperty("首付比例")
	private Double downPayScale;
	/** 首付金额 */
	@ApiModelProperty("首付金额")
	private BigDecimal downPayAmt;
	/** 尾付比例 */
	@ApiModelProperty("尾付比例")
	private Double tailPayScale;
	/** 尾付金额 */
	@ApiModelProperty("尾付金额")
	private BigDecimal tailPayAmt;
	/** 贴息总额 */
	@ApiModelProperty("贴息总额")
	private BigDecimal totalDiscountAmt;
	/** 贷款金额 */
	@ApiModelProperty("贷款金额")
	private BigDecimal loanAmt;
	/** 融资期数 */
	@ApiModelProperty("融资期数")
	private Integer loanTerm;
	/** 月供金额 */
	@ApiModelProperty("月供金额")
	private BigDecimal monthPayAmt;
	/** 厂商最大贴息额 */
	@ApiModelProperty("厂商最大贴息额")
	private BigDecimal maxDiscountAmt;
	/** 算法类型 */
	@ApiModelProperty("算法类型")
	private CalculateType algorithmType;
	/** 贴息方式 */
	@ApiModelProperty("贴息方式")
	private DiscountType discountType;

	/** 是否有子产品 */
	@ApiModelProperty("是否有子产品")
	private String isSubProduct;
	/** 附加金额 */
	@ApiModelProperty("附加金额")
	private BigDecimal addAmt;

}
